<%@ page import="com.luzhikun.EL_JSTL.Person" %>
<%@ page import="java.util.List" %>
<%@ page import="java.util.ArrayList" %>
<%@ page import="java.util.Map" %>
<%@ page import="java.util.HashMap" %><%--
  Created by IntelliJ IDEA.
  User: 小柒的Java
  Date: 2021/4/27
  Time: 16:53
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<%
    request.setAttribute("key", "值");
    Person person = new Person();
    person.setName("吴杰");

    String[] phone = {"131626262", "1299129"};
    person.setPhone(phone);

    List<String> list = new ArrayList<>();
    list.add("广州");
    list.add("深圳");
    list.add("北极");
    list.add("南极");
    person.setList(list);

    Map map = new HashMap();
    map.put("key1", "大头");
    map.put("key2", "小头");
    map.put("key3", "无头");
    person.setMap(map);

    //将这个Person设置到域属性中
    request.setAttribute("pe", person);
%>
EL表达式输出Person的name值 ${pe}<br>
EL表达式输出数组的phone：${pe.phone}<br>
EL表达式输出数组的phone：${pe.phone[1]}<br>
EL表达式输出List的城市值：${pe.list}<br>
EL表达式输出List的城市值：${pe.list.get(1)}<br>
EL表达式输出Map的头的值：${pe.map}<br>
EL表达式输出Map的头的值：${pe.map.key1}<br>
表达式脚本的值：<%= request.getAttribute("key") %></br>
EL表达式的值：${key}<br>
关系运算<br>

<%--eq等于--%>
${12==12}或${12 eq 12}<br>
<%--ne不等于--%>
${12!=12}或${12 ne 12}<br>
<%--lt 小于--%>
${12<12}或${12 lt 14}<br>
<%--gt 大于--%>
${12>12}或${13 gt 12}<br>
<%--le 小于等于--%>
${12 <= 12}或${12 le 12}<br>
<%--ge 大于等于--%>
${12>=12}或${12 ge 12}<br>

逻辑运算<br>
<%-- true 或 true--%>
${12==12 && 3==3} 或 ${12==12 and 3==3}<br>
<%-- true 或 true--%>
${12==12 || 3==2} 或 ${12==12 or 3==2}<br>
<%-- false或 false--%>
${! (12==12) }或 ${not (12==12)}<br>

算术运算<br>
+ - * 和 java一样<br>
<%--除法 / 或 div --%>
<%--4.0或4.0 --%>
${12/3}或${12 div 3}
<%--取模--%>
<%--0或 0--%>
${12 % 2}或 ${12 mod 2}

1.值为null的时候，为空<br>
<% request.setAttribute("person", null); %>
${empty person}<br>


2.值为空串的时候,为空<br>
<% request.setAttribute("per1", ""); %>
${empty per1}<br>

3.值为Object类型数组，长度为零的时候<br>
<%
    Object[] objects = new Object[0];
    request.setAttribute("per2", objects);%>
${empty per2}<br>

4.list集合，元素个数为零<br>
<% List list1 = new ArrayList();
    request.setAttribute("per3", list1);
%>

${empty per3}<br>

5.map集合，元素个数为零<br>

<%
    Map map1 = new HashMap();
    request.setAttribute("per4", map1);
%>

${empty per4}
<br>
.运算
[]运算<br>

<%
    Map map2 = new HashMap();
    map2.put("a.a.a", 3);
    map2.put("b+b+b", 4);
    map2.put("ccc", 5);
    request.setAttribute("pers", map2);
%>

${pers['a.a.a']}<br>
${pers["a.a.a"]}<br>
${pers.ccc}

<%--EL表达式可以通过pageContext获取到四大域对象--%>
${pageContext.session}
${pageContext.servletContext}
${pageContext.request}

</body>
</html>
